<?php
/**
 * Класс для валидации форм создания/редактирования данных пользователя
 * Все методы статичны и используются в валидаторах Zend_Form типа Callback
 *
 * @category Phorm
 * @package Validate
 * @name /Phorm/Validate/User.php
 * @copyright phorm.ru
 * @since 25.04.2011
 * @author vladimir@kachalov.net
 * @todo Под удаление скорей всего
 */

class Phorm_Validate_User {
	
	/**
	 * Валидация правильности подтверждения пароля для форм создания/редактирования пользователей
	 * 
	 * @param string $passw Строка пароля
	 * @param array $options Массив опций (значений данных формы)
	 * 
	 * @return boolean
	 */
		
	public static function isPasswConfirm($passw,$options) {
			
		return $passw==$options["passw"] ? true : false;
			
	}
	
	
	/**
	 * Валидация правильности подтверждения email для форм создания/редактирования пользователей
	 * 
	 * @param string $email Адрес email
	 * @param array $options Массив опций (значений данных формы)
	 * 
	 * @return boolean
	 */
		
	public static function isEmailConfirm($email,$options) {
			
		return $email==$options["email"] ? true : false;
			
	}
	
	
	/**
	 * Валидация существования email для форм создания/редактирования пользователей
	 * 
	 * @param string $email Email-адрес
	 * 
	 * @return boolean
	 */
		
	public static function isEmailExist($email) {
		
		$Model = new Phorm_Model();
		
		$select = $Model->_db->select()
				-> from("pw_users",new Zend_Db_Expr("1"))
				-> where("email=?",$email);
			
		if(isset($Model->_usersession->UserData["userid"]) && $Model->_usersession->UserData["userid"]>0) {
			
			$select -> where("userid!=".(int)$Model->_usersession->UserData["userid"]);
				
		}
			
		return $Model->_db->fetchOne($select) ? false : true;
			
	}
	
	
	/**
	 * Валидация существования имени пользователя для форм создания/редактирования пользователей
	 * 
	 * @param string $username Имя пользователя
	 * 
	 * @return boolean
	 */
		
	public static function isUsernameExist($username) {
		
		$Model = new Phorm_Model();
		
		$select = $Model->_db->select()
				-> from("pw_users",new Zend_Db_Expr("1"))
				-> where("username=?",$username);
			
		if(isset($Model->_usersession->UserData["userid"]) && $Model->_usersession->UserData["userid"]>0) {
			
			$select -> where("userid!=".(int)$Model->_usersession->UserData["userid"]);
				
		}
			
		return $Model->_db->fetchOne($select) ? false : true;
			
	}
	
}